.TH "Low-level binary search tree manipulation module" 3 "22 Jun 2006" "Version 1.4" "gdsl" \" -*- nroff -*-
.ad l
.nh
.SH NAME
Low-level binary search tree manipulation module \- 
.PP
.SS "Typedefs"

.in +1c
.ti -1c
.RI "typedef \fB_gdsl_bintree_t\fP \fB_gdsl_bstree_t\fP"
.br
.RI "\fIGDSL low-level binary search tree type. \fP"
.ti -1c
.RI "typedef int(* \fB_gdsl_bstree_map_func_t\fP )(\fB_gdsl_bstree_t\fP TREE, void *USER_DATA)"
.br
.RI "\fIGDSL low-level binary search tree map function type. \fP"
.ti -1c
.RI "typedef void(* \fB_gdsl_bstree_write_func_t\fP )(\fB_gdsl_bstree_t\fP TREE, FILE *OUTPUT_FILE, void *USER_DATA)"
.br
.RI "\fIGDSL low-level binary search tree write function type. \fP"
.in -1c
.SS "Functions"

.in +1c
.ti -1c
.RI "\fB_gdsl_bstree_t\fP \fB_gdsl_bstree_alloc\fP (const \fBgdsl_element_t\fP E)"
.br
.RI "\fICreate a new low-level binary search tree. \fP"
.ti -1c
.RI "void \fB_gdsl_bstree_free\fP (\fB_gdsl_bstree_t\fP T, const \fBgdsl_free_func_t\fP FREE_F)"
.br
.RI "\fIDestroy a low-level binary search tree. \fP"
.ti -1c
.RI "\fB_gdsl_bstree_t\fP \fB_gdsl_bstree_copy\fP (const \fB_gdsl_bstree_t\fP T, const \fBgdsl_copy_func_t\fP COPY_F)"
.br
.RI "\fICopy a low-level binary search tree. \fP"
.ti -1c
.RI "\fBbool\fP \fB_gdsl_bstree_is_empty\fP (const \fB_gdsl_bstree_t\fP T)"
.br
.RI "\fICheck if a low-level binary search tree is empty. \fP"
.ti -1c
.RI "\fBbool\fP \fB_gdsl_bstree_is_leaf\fP (const \fB_gdsl_bstree_t\fP T)"
.br
.RI "\fICheck if a low-level binary search tree is reduced to a leaf. \fP"
.ti -1c
.RI "\fBgdsl_element_t\fP \fB_gdsl_bstree_get_content\fP (const \fB_gdsl_bstree_t\fP T)"
.br
.RI "\fIGet the root content of a low-level binary search tree. \fP"
.ti -1c
.RI "\fBbool\fP \fB_gdsl_bstree_is_root\fP (const \fB_gdsl_bstree_t\fP T)"
.br
.RI "\fICheck if a low-level binary search tree is a root. \fP"
.ti -1c
.RI "\fB_gdsl_bstree_t\fP \fB_gdsl_bstree_get_parent\fP (const \fB_gdsl_bstree_t\fP T)"
.br
.RI "\fIGet the parent tree of a low-level binary search tree. \fP"
.ti -1c
.RI "\fB_gdsl_bstree_t\fP \fB_gdsl_bstree_get_left\fP (const \fB_gdsl_bstree_t\fP T)"
.br
.RI "\fIGet the left sub-tree of a low-level binary search tree. \fP"
.ti -1c
.RI "\fB_gdsl_bstree_t\fP \fB_gdsl_bstree_get_right\fP (const \fB_gdsl_bstree_t\fP T)"
.br
.RI "\fIGet the right sub-tree of a low-level binary search tree. \fP"
.ti -1c
.RI "\fBulong\fP \fB_gdsl_bstree_get_size\fP (const \fB_gdsl_bstree_t\fP T)"
.br
.RI "\fIGet the size of a low-level binary search tree. \fP"
.ti -1c
.RI "\fBulong\fP \fB_gdsl_bstree_get_height\fP (const \fB_gdsl_bstree_t\fP T)"
.br
.RI "\fIGet the height of a low-level binary search tree. \fP"
.ti -1c
.RI "\fB_gdsl_bstree_t\fP \fB_gdsl_bstree_insert\fP (\fB_gdsl_bstree_t\fP *T, const \fBgdsl_compare_func_t\fP COMP_F, const \fBgdsl_element_t\fP VALUE, int *RESULT)"
.br
.RI "\fIInsert an element into a low-level binary search tree if it's not found or return it. \fP"
.ti -1c
.RI "\fBgdsl_element_t\fP \fB_gdsl_bstree_remove\fP (\fB_gdsl_bstree_t\fP *T, const \fBgdsl_compare_func_t\fP COMP_F, const \fBgdsl_element_t\fP VALUE)"
.br
.RI "\fIRemove an element from a low-level binary search tree. \fP"
.ti -1c
.RI "\fB_gdsl_bstree_t\fP \fB_gdsl_bstree_search\fP (const \fB_gdsl_bstree_t\fP T, const \fBgdsl_compare_func_t\fP COMP_F, const \fBgdsl_element_t\fP VALUE)"
.br
.RI "\fISearch for a particular element into a low-level binary search tree. \fP"
.ti -1c
.RI "\fB_gdsl_bstree_t\fP \fB_gdsl_bstree_search_next\fP (const \fB_gdsl_bstree_t\fP T, const \fBgdsl_compare_func_t\fP COMP_F, const \fBgdsl_element_t\fP VALUE)"
.br
.RI "\fISearch for the next element of a particular element into a low-level binary search tree, according to the binary search tree order. \fP"
.ti -1c
.RI "\fB_gdsl_bstree_t\fP \fB_gdsl_bstree_map_prefix\fP (const \fB_gdsl_bstree_t\fP T, const \fB_gdsl_bstree_map_func_t\fP MAP_F, void *USER_DATA)"
.br
.RI "\fIParse a low-level binary search tree in prefixed order. \fP"
.ti -1c
.RI "\fB_gdsl_bstree_t\fP \fB_gdsl_bstree_map_infix\fP (const \fB_gdsl_bstree_t\fP T, const \fB_gdsl_bstree_map_func_t\fP MAP_F, void *USER_DATA)"
.br
.RI "\fIParse a low-level binary search tree in infixed order. \fP"
.ti -1c
.RI "\fB_gdsl_bstree_t\fP \fB_gdsl_bstree_map_postfix\fP (const \fB_gdsl_bstree_t\fP T, const \fB_gdsl_bstree_map_func_t\fP MAP_F, void *USER_DATA)"
.br
.RI "\fIParse a low-level binary search tree in postfixed order. \fP"
.ti -1c
.RI "void \fB_gdsl_bstree_write\fP (const \fB_gdsl_bstree_t\fP T, const \fB_gdsl_bstree_write_func_t\fP WRITE_F, FILE *OUTPUT_FILE, void *USER_DATA)"
.br
.RI "\fIWrite the content of all nodes of a low-level binary search tree to a file. \fP"
.ti -1c
.RI "void \fB_gdsl_bstree_write_xml\fP (const \fB_gdsl_bstree_t\fP T, const \fB_gdsl_bstree_write_func_t\fP WRITE_F, FILE *OUTPUT_FILE, void *USER_DATA)"
.br
.RI "\fIWrite the content of a low-level binary search tree to a file into XML. \fP"
.ti -1c
.RI "void \fB_gdsl_bstree_dump\fP (const \fB_gdsl_bstree_t\fP T, const \fB_gdsl_bstree_write_func_t\fP WRITE_F, FILE *OUTPUT_FILE, void *USER_DATA)"
.br
.RI "\fIDump the internal structure of a low-level binary search tree to a file. \fP"
.in -1c
.SH "Typedef Documentation"
.PP 
.SS "typedef \fB_gdsl_bintree_t\fP \fB_gdsl_bstree_t\fP"
.PP
GDSL low-level binary search tree type. 
.PP
This type is voluntary opaque. Variables of this kind could'nt be directly used, but by the functions of this module. 
.PP
Definition at line 52 of file _gdsl_bstree.h.
.SS "typedef int(*  \fB_gdsl_bstree_map_func_t\fP)(\fB_gdsl_bstree_t\fP TREE, void *USER_DATA)"
.PP
GDSL low-level binary search tree map function type. 
.PP
\fBParameters:\fP
.RS 4
\fITREE\fP The low-level binary search tree to map. 
.br
\fIUSER_DATA\fP The user datas to pass to this function. 
.RE
.PP
\fBReturns:\fP
.RS 4
GDSL_MAP_STOP if the mapping must be stopped. 
.PP
GDSL_MAP_CONT if the mapping must be continued. 
.RE
.PP

.PP
Definition at line 61 of file _gdsl_bstree.h.
.SS "typedef void(*  \fB_gdsl_bstree_write_func_t\fP)(\fB_gdsl_bstree_t\fP TREE, FILE *OUTPUT_FILE, void *USER_DATA)"
.PP
GDSL low-level binary search tree write function type. 
.PP
\fBParameters:\fP
.RS 4
\fITREE\fP The low-level binary search tree to write. 
.br
\fIOUTPUT_FILE\fP The file where to write TREE. 
.br
\fIUSER_DATA\fP The user datas to pass to this function. 
.RE
.PP

.PP
Definition at line 71 of file _gdsl_bstree.h.
.SH "Function Documentation"
.PP 
.SS "\fB_gdsl_bstree_t\fP _gdsl_bstree_alloc (const \fBgdsl_element_t\fP E)"
.PP
Create a new low-level binary search tree. 
.PP
Allocate a new low-level binary search tree data structure. Its root content is sets to E and its left and right sons are set to NULL.
.PP
\fBNote:\fP
.RS 4
Complexity: O( 1 ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
nothing. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIE\fP The root content of the new low-level binary search tree to create. 
.RE
.PP
\fBReturns:\fP
.RS 4
the newly allocated low-level binary search tree in case of success. 
.PP
NULL in case of insufficient memory. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_free()\fP 
.RE
.PP

.SS "void _gdsl_bstree_free (\fB_gdsl_bstree_t\fP T, const \fBgdsl_free_func_t\fP FREE_F)"
.PP
Destroy a low-level binary search tree. 
.PP
Flush and destroy the low-level binary search tree T. If FREE_F != NULL, FREE_F function is used to deallocate each T's element. Otherwise nothing is done with T's elements.
.PP
\fBNote:\fP
.RS 4
Complexity: O( |T| ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
nothing. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to destroy. 
.br
\fIFREE_F\fP The function used to deallocate T's nodes contents. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_alloc()\fP 
.RE
.PP

.SS "\fB_gdsl_bstree_t\fP _gdsl_bstree_copy (const \fB_gdsl_bstree_t\fP T, const \fBgdsl_copy_func_t\fP COPY_F)"
.PP
Copy a low-level binary search tree. 
.PP
Create and return a copy of the low-level binary search tree T using COPY_F on each T's element to copy them.
.PP
\fBNote:\fP
.RS 4
Complexity: O( |T| ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
COPY_F != NULL. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to copy. 
.br
\fICOPY_F\fP The function used to copy T's nodes contents. 
.RE
.PP
\fBReturns:\fP
.RS 4
a copy of T in case of success. 
.PP
NULL if _gdsl_bstree_is_empty (T) == TRUE or in case of insufficient memory. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_alloc()\fP 
.PP
\fB_gdsl_bstree_free()\fP 
.PP
\fB_gdsl_bstree_is_empty()\fP 
.RE
.PP

.SS "\fBbool\fP _gdsl_bstree_is_empty (const \fB_gdsl_bstree_t\fP T)"
.PP
Check if a low-level binary search tree is empty. 
.PP
\fBNote:\fP
.RS 4
Complexity: O( 1 ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
nothing. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to check. 
.RE
.PP
\fBReturns:\fP
.RS 4
TRUE if the low-level binary search tree T is empty. 
.PP
FALSE if the low-level binary search tree T is not empty. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_is_leaf()\fP 
.PP
\fB_gdsl_bstree_is_root()\fP 
.RE
.PP

.SS "\fBbool\fP _gdsl_bstree_is_leaf (const \fB_gdsl_bstree_t\fP T)"
.PP
Check if a low-level binary search tree is reduced to a leaf. 
.PP
\fBNote:\fP
.RS 4
Complexity: O( 1 ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
T must be a non-empty _gdsl_bstree_t. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to check. 
.RE
.PP
\fBReturns:\fP
.RS 4
TRUE if the low-level binary search tree T is a leaf. 
.PP
FALSE if the low-level binary search tree T is not a leaf. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_is_empty()\fP 
.PP
\fB_gdsl_bstree_is_root()\fP 
.RE
.PP

.SS "\fBgdsl_element_t\fP _gdsl_bstree_get_content (const \fB_gdsl_bstree_t\fP T)"
.PP
Get the root content of a low-level binary search tree. 
.PP
\fBNote:\fP
.RS 4
Complexity: O( 1 ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
T must be a non-empty _gdsl_bstree_t. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to use. 
.RE
.PP
\fBReturns:\fP
.RS 4
the root's content of the low-level binary search tree T. 
.RE
.PP

.SS "\fBbool\fP _gdsl_bstree_is_root (const \fB_gdsl_bstree_t\fP T)"
.PP
Check if a low-level binary search tree is a root. 
.PP
\fBNote:\fP
.RS 4
Complexity: O( 1 ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
T must be a non-empty _gdsl_bstree_t. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to check. 
.RE
.PP
\fBReturns:\fP
.RS 4
TRUE if the low-level binary search tree T is a root. 
.PP
FALSE if the low-level binary search tree T is not a root. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_is_empty()\fP 
.PP
\fB_gdsl_bstree_is_leaf()\fP 
.RE
.PP

.SS "\fB_gdsl_bstree_t\fP _gdsl_bstree_get_parent (const \fB_gdsl_bstree_t\fP T)"
.PP
Get the parent tree of a low-level binary search tree. 
.PP
\fBNote:\fP
.RS 4
Complexity: O( 1 ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
T must be a non-empty _gdsl_bstree_t. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to use. 
.RE
.PP
\fBReturns:\fP
.RS 4
the parent of the low-level binary search tree T if T isn't a root. 
.PP
NULL if the low-level binary search tree T is a root (ie. T has no parent). 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_is_root()\fP 
.RE
.PP

.SS "\fB_gdsl_bstree_t\fP _gdsl_bstree_get_left (const \fB_gdsl_bstree_t\fP T)"
.PP
Get the left sub-tree of a low-level binary search tree. 
.PP
\fBNote:\fP
.RS 4
Complexity: O( 1 ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
T must be a non-empty _gdsl_bstree_t. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to use. 
.RE
.PP
\fBReturns:\fP
.RS 4
the left sub-tree of the low-level binary search tree T if T has a left sub-tree. 
.PP
NULL if the low-level binary search tree T has no left sub-tree. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_get_right()\fP 
.RE
.PP

.SS "\fB_gdsl_bstree_t\fP _gdsl_bstree_get_right (const \fB_gdsl_bstree_t\fP T)"
.PP
Get the right sub-tree of a low-level binary search tree. 
.PP
\fBNote:\fP
.RS 4
Complexity: O( 1 ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
T must be a non-empty _gdsl_bstree_t. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to use. 
.RE
.PP
\fBReturns:\fP
.RS 4
the right sub-tree of the low-level binary search tree T if T has a right sub-tree. 
.PP
NULL if the low-level binary search tree T has no right sub-tree. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_get_left()\fP 
.RE
.PP

.SS "\fBulong\fP _gdsl_bstree_get_size (const \fB_gdsl_bstree_t\fP T)"
.PP
Get the size of a low-level binary search tree. 
.PP
\fBNote:\fP
.RS 4
Complexity: O( |T| ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
nothing. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to compute the size from. 
.RE
.PP
\fBReturns:\fP
.RS 4
the number of elements of T (noted |T|). 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_get_height()\fP 
.RE
.PP

.SS "\fBulong\fP _gdsl_bstree_get_height (const \fB_gdsl_bstree_t\fP T)"
.PP
Get the height of a low-level binary search tree. 
.PP
Compute the height of the low-level binary search tree T (noted h(T)).
.PP
\fBNote:\fP
.RS 4
Complexity: O( |T| ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
nothing. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to compute the height from. 
.RE
.PP
\fBReturns:\fP
.RS 4
the height of T. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_get_size()\fP 
.RE
.PP

.SS "\fB_gdsl_bstree_t\fP _gdsl_bstree_insert (\fB_gdsl_bstree_t\fP * T, const \fBgdsl_compare_func_t\fP COMP_F, const \fBgdsl_element_t\fP VALUE, int * RESULT)"
.PP
Insert an element into a low-level binary search tree if it's not found or return it. 
.PP
Search for the first element E equal to VALUE into the low-level binary search tree T, by using COMP_F function to find it. If an element E equal to VALUE is found, then it's returned. If no element equal to VALUE is found, then E is inserted and its root returned.
.PP
\fBNote:\fP
.RS 4
Complexity: O( h(T) ), where log2(|T|) <= h(T) <= |T|-1 
.RE
.PP
\fBPrecondition:\fP
.RS 4
COMP_F != NULL & RESULT != NULL. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The reference of the low-level binary search tree to use. 
.br
\fICOMP_F\fP The comparison function to use to compare T's elements with VALUE to find E. 
.br
\fIVALUE\fP The value used to search for the element E. 
.br
\fIRESULT\fP The address where the result code will be stored. 
.RE
.PP
\fBReturns:\fP
.RS 4
the root containing E and RESULT = GDSL_INSERTED if E is inserted. 
.PP
the root containing E and RESULT = GDSL_ERR_DUPLICATE_ENTRY if E is not inserted. 
.PP
NULL and RESULT = GDSL_ERR_MEM_ALLOC in case of failure. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_search()\fP 
.PP
\fB_gdsl_bstree_remove()\fP 
.RE
.PP

.SS "\fBgdsl_element_t\fP _gdsl_bstree_remove (\fB_gdsl_bstree_t\fP * T, const \fBgdsl_compare_func_t\fP COMP_F, const \fBgdsl_element_t\fP VALUE)"
.PP
Remove an element from a low-level binary search tree. 
.PP
Remove from the low-level binary search tree T the first founded element E equal to VALUE, by using COMP_F function to compare T's elements. If E is found, it is removed from T.
.PP
\fBNote:\fP
.RS 4
Complexity: O( h(T) ), where log2(|T|) <= h(T) <= |T|-1 
.PP
The resulting T is modified by examinating the left sub-tree from the founded e. 
.RE
.PP
\fBPrecondition:\fP
.RS 4
COMP_F != NULL. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The reference of the low-level binary search tree to modify. 
.br
\fICOMP_F\fP The comparison function to use to compare T's elements with VALUE to find the element e to remove. 
.br
\fIVALUE\fP The value that must be used by COMP_F to find the element e to remove. 
.RE
.PP
\fBReturns:\fP
.RS 4
the fisrt founded element equal to VALUE in T. 
.PP
NULL if no element equal to VALUE is found or if T is empty. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_insert()\fP 
.PP
\fB_gdsl_bstree_search()\fP 
.RE
.PP

.SS "\fB_gdsl_bstree_t\fP _gdsl_bstree_search (const \fB_gdsl_bstree_t\fP T, const \fBgdsl_compare_func_t\fP COMP_F, const \fBgdsl_element_t\fP VALUE)"
.PP
Search for a particular element into a low-level binary search tree. 
.PP
Search the first element E equal to VALUE in the low-level binary search tree T, by using COMP_F function to find it.
.PP
\fBNote:\fP
.RS 4
Complexity: O( h(T) ), where log2(|T|) <= h(T) <= |T|-1 
.RE
.PP
\fBPrecondition:\fP
.RS 4
COMP_F != NULL. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to use. 
.br
\fICOMP_F\fP The comparison function to use to compare T's elements with VALUE to find the element E. 
.br
\fIVALUE\fP The value that must be used by COMP_F to find the element E. 
.RE
.PP
\fBReturns:\fP
.RS 4
the root of the tree containing E if it's found. 
.PP
NULL if VALUE is not found in T. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_insert()\fP 
.PP
\fB_gdsl_bstree_remove()\fP 
.RE
.PP

.SS "\fB_gdsl_bstree_t\fP _gdsl_bstree_search_next (const \fB_gdsl_bstree_t\fP T, const \fBgdsl_compare_func_t\fP COMP_F, const \fBgdsl_element_t\fP VALUE)"
.PP
Search for the next element of a particular element into a low-level binary search tree, according to the binary search tree order. 
.PP
Search for an element E in the low-level binary search tree T, by using COMP_F function to find the first element E equal to VALUE.
.PP
\fBNote:\fP
.RS 4
Complexity: O( h(T) ), where log2(|T|) <= h(T) <= |T|-1 
.RE
.PP
\fBPrecondition:\fP
.RS 4
COMP_F != NULL. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to use. 
.br
\fICOMP_F\fP The comparison function to use to compare T's elements with VALUE to find the element E. 
.br
\fIVALUE\fP The value that must be used by COMP_F to find the element E. 
.RE
.PP
\fBReturns:\fP
.RS 4
the root of the tree containing the successor of E if it's found. 
.PP
NULL if VALUE is not found in T or if E has no sucessor. 
.RE
.PP

.SS "\fB_gdsl_bstree_t\fP _gdsl_bstree_map_prefix (const \fB_gdsl_bstree_t\fP T, const \fB_gdsl_bstree_map_func_t\fP MAP_F, void * USER_DATA)"
.PP
Parse a low-level binary search tree in prefixed order. 
.PP
Parse all nodes of the low-level binary search tree T in prefixed order. The MAP_F function is called on each node with the USER_DATA argument. If MAP_F returns GDSL_MAP_STOP, then \fB_gdsl_bstree_map_prefix()\fP stops and returns its last examinated node.
.PP
\fBNote:\fP
.RS 4
Complexity: O( |T| ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
MAP_F != NULL. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to map. 
.br
\fIMAP_F\fP The map function. 
.br
\fIUSER_DATA\fP User's datas passed to MAP_F. 
.RE
.PP
\fBReturns:\fP
.RS 4
the first node for which MAP_F returns GDSL_MAP_STOP. 
.PP
NULL when the parsing is done. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_map_infix()\fP 
.PP
\fB_gdsl_bstree_map_postfix()\fP 
.RE
.PP

.SS "\fB_gdsl_bstree_t\fP _gdsl_bstree_map_infix (const \fB_gdsl_bstree_t\fP T, const \fB_gdsl_bstree_map_func_t\fP MAP_F, void * USER_DATA)"
.PP
Parse a low-level binary search tree in infixed order. 
.PP
Parse all nodes of the low-level binary search tree T in infixed order. The MAP_F function is called on each node with the USER_DATA argument. If MAP_F returns GDSL_MAP_STOP, then \fB_gdsl_bstree_map_infix()\fP stops and returns its last examinated node.
.PP
\fBNote:\fP
.RS 4
Complexity: O( |T| ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
MAP_F != NULL. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to map. 
.br
\fIMAP_F\fP The map function. 
.br
\fIUSER_DATA\fP User's datas passed to MAP_F. 
.RE
.PP
\fBReturns:\fP
.RS 4
the first node for which MAP_F returns GDSL_MAP_STOP. 
.PP
NULL when the parsing is done. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_map_prefix()\fP 
.PP
\fB_gdsl_bstree_map_postfix()\fP 
.RE
.PP

.SS "\fB_gdsl_bstree_t\fP _gdsl_bstree_map_postfix (const \fB_gdsl_bstree_t\fP T, const \fB_gdsl_bstree_map_func_t\fP MAP_F, void * USER_DATA)"
.PP
Parse a low-level binary search tree in postfixed order. 
.PP
Parse all nodes of the low-level binary search tree T in postfixed order. The MAP_F function is called on each node with the USER_DATA argument. If MAP_F returns GDSL_MAP_STOP, then \fB_gdsl_bstree_map_postfix()\fP stops and returns its last examinated node.
.PP
\fBNote:\fP
.RS 4
Complexity: O( |T| ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
MAP_F != NULL. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to map. 
.br
\fIMAP_F\fP The map function. 
.br
\fIUSER_DATA\fP User's datas passed to MAP_F. 
.RE
.PP
\fBReturns:\fP
.RS 4
the first node for which MAP_F returns GDSL_MAP_STOP. 
.PP
NULL when the parsing is done. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_map_prefix()\fP 
.PP
\fB_gdsl_bstree_map_infix()\fP 
.RE
.PP

.SS "void _gdsl_bstree_write (const \fB_gdsl_bstree_t\fP T, const \fB_gdsl_bstree_write_func_t\fP WRITE_F, FILE * OUTPUT_FILE, void * USER_DATA)"
.PP
Write the content of all nodes of a low-level binary search tree to a file. 
.PP
Write the nodes contents of the low-level binary search tree T to OUTPUT_FILE, using WRITE_F function. Additionnal USER_DATA argument could be passed to WRITE_F.
.PP
\fBNote:\fP
.RS 4
Complexity: O( |T| ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
WRITE_F != NULL& OUTPUT_FILE != NULL. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to write. 
.br
\fIWRITE_F\fP The write function. 
.br
\fIOUTPUT_FILE\fP The file where to write T's nodes. 
.br
\fIUSER_DATA\fP User's datas passed to WRITE_F. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_write_xml()\fP 
.PP
\fB_gdsl_bstree_dump()\fP 
.RE
.PP

.SS "void _gdsl_bstree_write_xml (const \fB_gdsl_bstree_t\fP T, const \fB_gdsl_bstree_write_func_t\fP WRITE_F, FILE * OUTPUT_FILE, void * USER_DATA)"
.PP
Write the content of a low-level binary search tree to a file into XML. 
.PP
Write the nodes contents of the low-level binary search tree T to OUTPUT_FILE, into XML language. If WRITE_F != NULL, then use WRITE_F function to write T's nodes contents to OUTPUT_FILE. Additionnal USER_DATA argument could be passed to WRITE_F.
.PP
\fBNote:\fP
.RS 4
Complexity: O( |T| ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
OUTPUT_FILE != NULL. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to write. 
.br
\fIWRITE_F\fP The write function. 
.br
\fIOUTPUT_FILE\fP The file where to write T's nodes. 
.br
\fIUSER_DATA\fP User's datas passed to WRITE_F. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_write()\fP 
.PP
\fB_gdsl_bstree_dump()\fP 
.RE
.PP

.SS "void _gdsl_bstree_dump (const \fB_gdsl_bstree_t\fP T, const \fB_gdsl_bstree_write_func_t\fP WRITE_F, FILE * OUTPUT_FILE, void * USER_DATA)"
.PP
Dump the internal structure of a low-level binary search tree to a file. 
.PP
Dump the structure of the low-level binary search tree T to OUTPUT_FILE. If WRITE_F != NULL, then use WRITE_F function to write T's nodes content to OUTPUT_FILE. Additionnal USER_DATA argument could be passed to WRITE_F.
.PP
\fBNote:\fP
.RS 4
Complexity: O( |T| ) 
.RE
.PP
\fBPrecondition:\fP
.RS 4
OUTPUT_FILE != NULL. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIT\fP The low-level binary search tree to dump. 
.br
\fIWRITE_F\fP The write function. 
.br
\fIOUTPUT_FILE\fP The file where to write T's nodes. 
.br
\fIUSER_DATA\fP User's datas passed to WRITE_F. 
.RE
.PP
\fBSee also:\fP
.RS 4
\fB_gdsl_bstree_write()\fP 
.PP
\fB_gdsl_bstree_write_xml()\fP 
.RE
.PP

